package com.cy.pj.brand.dao;

import com.cy.pj.brand.pojo.Brand;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface BrandDao {
    /**
     * 基于品牌id查询xinxi
     * @param id
     * @return 查询品牌
     */
    @Select("select * from tb_brand where id=#{id}")
    Brand findById(Integer id);

    /**
     * 将brand对象持久化到数据库
     * 如何理解持久化?(将内存中的数据写入数据库,可以持久保存)
     *
     */
    @Update("update tb_brand set name=#{name},remark=#{remark} where id=#{id}")
    int updateBrand(Brand brand);
    @Insert("insert into tb_brand (name,remark,createdTime) values (#{name},#{remark},now())")
    int insertBrand(Brand brand);
    /**
     * 基于品牌名字执行查询操作
     * name
     * 基于name值不同可能需要如下两种sql实现
     * select * from tb_brand;(name没有值时,应默认查询所有)
     * select * from tb_brand where name like concat("%".#{name}."%")
     *
     * FAQ?如何基于条件实现如上两种
     */
    List<Brand> findBrands(String name);
/**
 * 基于品牌id执行删除业务
 *
 * 实际项目很多不做真正的删除,只是修改记录的状态,让当前记录处于一种删除状态即可(一般表中会有)
 */

    @Delete("delete from tb_brand where id=#{id}")
    int deleteById(Integer id);

}
